package controller;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Semaphore;

import view.Servidor;

public class ServidorSocket extends Thread
{

  private ServerSocket         server   = null;
  private static Semaphore     semaforo = new Semaphore(1, true);
  
  /*private static List<Integer> fila     = new ArrayList<Integer>();  
  private static boolean       flag     = false;*/

  @Override
  public synchronized void run()
  {

    try
    {
      server = new ServerSocket(7000);
      Servidor.mensagemInformacao("Socket UP!");
      Servidor.mensagemInformacao("ESPERANDO CONEXAO");
      
      while (true)
      {
        //Servidor.mensagemInformacao("ESPERANDO CONEXAO");
        Socket client = server.accept();
        Servidor.mensagemInformacao("CONEXAO ACEITA, PROCESSANDO.");
        new ProcessaCliente(client).processaAssincrono();
      }
    }
    catch (IOException e)
    {
      e.printStackTrace();
      Servidor.mensagemErro("Algum problema ocorreu para criar o socket.");
    }
  }
  
  public static Semaphore semaforo() {
    return semaforo;
  }
  
  
}